package com.ctg.itrdc.imageconsole.service;

import java.util.List;

import com.ctg.itrdc.imageconsole.data.dto.ClusterAssignDTO;
import com.ctg.itrdc.imageconsole.data.dto.image.MicroUserDTO;
import com.ctg.itrdc.imageconsole.data.entity.ClusterConfig;

public interface IClusterConfigService {
	
	List<ClusterConfig> queryClusterList();
	
	ClusterConfig queryCluster(Long id);
	
	
	/**
	 * 
	 * @Description:添加集群,新增时会判断集群名称是否已经存在，判断新增集群时配置的url是否可用
	 * @author Piao.Wu 2016年9月7日 下午2:27:19
	 * @param clusterConfig
	 * @return
	 * String
	 *
	 */
	String addCluster(ClusterConfig clusterConfig);
	
	
	/**
	 * 
	 * @Description: 验证新增集群时配置的url是否可用
	 * @author Piao.Wu 2016年9月7日 下午3:26:55
	 * @param monitorUrl
	 * @param clusterCode
	 * @return
	 * String
	 *
	 */
	String getApiServerUrl(String monitorUrl, String clusterCode);
	
	/**
	 * 
	 * @Description: 根据多个集群配置url，查询对应多个集群资源信息
	 * @author Piao.Wu 2016年9月8日 上午9:37:31
	 * @param clusterCodes
	 * @return
	 * String
	 *
	 */
	String queryResourcesByUrls(String clusterCodes) throws Exception;

	
	/**
	 * 
	 * @Description: 删除集群配置
	 * @author Piao.Wu 2016年9月8日 上午10:54:17
	 * @param clusterConfig
	 * @return
	 * int
	 *
	 */
	int deleteByPrimaryKey(ClusterConfig clusterConfig);
	
	/**
	 * 
	 * @Description: 根据封装好的实体属性查询
	 * @author Piao.Wu 2016年11月18日 上午11:23:25
	 * @param entity
	 * @return
	 * List<ClusterConfig>
	 *
	 */
	List<ClusterConfig> queryByEntity(ClusterConfig entity);
	
	void clusterAssign(ClusterAssignDTO ClusterShareDTO);
	
	List<MicroUserDTO> queryAssignUsers(Long clusterConfigId);
}
